package palette;

import java.awt.Color;
import java.util.ArrayList;
import java.util.Vector;

import javax.swing.JLabel;

import patternobserver.Observable;
import patternobserver.Observateur;





public class ModelePalette implements Observable {
	
	private Vector<Color> lesCouleurs;
	private Color choixColor = Color.black;
	
	public ModelePalette(){
		System.out.println("initialisation du modele de la palette");
		lesCouleurs = new Vector<Color>();
		initDefault();
		
	}
	
	public Vector<Color> getLesCouleurs() {return lesCouleurs;}
	
	public void addColor(Color c){
		this.lesCouleurs.add(c);
		System.out.println("dddd");
	}
	
	public void addColor(Color c, int n){
		this.lesCouleurs.remove(n);
		this.lesCouleurs.add(n, c);
	}
	
	
	public Color getChoixColor() {return choixColor;}
	
	public void setChoixColor(Color choixColor) {
		System.out.println("couleur dans le modele changée");
		this.choixColor = choixColor;
		this.updateObservateur();
		}
	
	private void initDefault(){
		    //Couleurs Standard
			this.lesCouleurs.add(new Color(0,0,0));
			this.lesCouleurs.add(new Color(127,127,127));
			this.lesCouleurs.add(new Color(136,0,21));
			this.lesCouleurs.add(new Color(237,28,36));
			this.lesCouleurs.add(new Color(255,127,39));
			this.lesCouleurs.add(new Color(255,255,255));
			this.lesCouleurs.add(new Color(195,195,195));
			this.lesCouleurs.add(new Color(185,122,87));
			this.lesCouleurs.add(new Color(255,174,201));
			this.lesCouleurs.add(new Color(255,201,14));
			this.lesCouleurs.add(new Color(255,242,0));
			this.lesCouleurs.add(new Color(239,228,176));
			this.lesCouleurs.add(new Color(34,177,76));
			this.lesCouleurs.add(new Color(181,230,29));
			this.lesCouleurs.add(new Color(0,162,232));
			this.lesCouleurs.add(new Color(153,217,234));
			this.lesCouleurs.add(new Color(63,72,204));
			this.lesCouleurs.add(new Color(112,146,190));
			this.lesCouleurs.add(new Color(163,73,164));
			this.lesCouleurs.add(new Color(200,191,231));
			
			;}
	


	@Override
	public void addObservateur(Observateur obs) {
		this.listObservateur.add(obs);
	}

	@Override
	public void updateObservateur() {
		for(Observateur obs : this.listObservateur )
			obs.update();
	}

	@Override
	public void delObservateur() {
		this.listObservateur = new ArrayList<Observateur>();
		
	}
	
	private ArrayList<Observateur> listObservateur = new ArrayList<Observateur>();
	
}